@keyframes noise {
  0% {
    transform: translate(0, 0);
  }
  10% {
    transform: translate(-5%, -5%);
  }
  20% {
    transform: translate(1%, 1%);
  }
  30% {
    transform: translate(-3%, -3%);
  }
  40% {
    transform: translate(3%, 2%);
  }
  50% {
    transform: translate(-1%, 1%);
  }
  60% {
    transform: translate(1%, -1%);
  }
  70% {
    transform: translate(2%, -2%);
  }
  80% {
    transform: translate(-2%, 2%);
  }
  90% {
    transform: translate(1%, -1%);
  }
  100% {
    transform: translate(0, 0);
  }
}

@keyframes scanline {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(4px);
  }
}

@keyframes flicker {
  0% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.4;
  }
  100% {
    opacity: 0.1;
  }
}

@keyframes textGlow {
  0%, 100% {
    text-shadow: 0 0 4px rgba($primary-color, .1);
  }
  50% {
    text-shadow: 0 0 16px rgba($primary-color, .8);
  }
}

@keyframes progressGlow {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

@keyframes crawl {
  0% {
    top: 80%;
    transform: translateX(-50%) rotateX(25deg) translateZ(0);
  }
  100% {
    top: -200%;
    transform: translateX(-50%) rotateX(25deg) translateZ(-2500px);
  }
}

@keyframes scan {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(100vh);
  }
}

@keyframes flicker {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
  }
}

@keyframes scroll {
  0% {
    transform: perspective(300px) rotateX(20deg) translateY(100%);
  }
  100% {
    transform: perspective(300px) rotateX(20deg) translateY(-100%);
  }
}

@keyframes rainbow {
  0% {
    filter: hue-rotate(0deg);
  }
  100% {
    filter: hue-rotate(360deg);
  }
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(8);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes matrix-drop {
  0% {
    transform: translateY(-20px);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translateY(0);
    opacity: 0.7;
  }
}

@keyframes matrix-glow {
  0% {
    text-shadow: 0 0 5px #00ff00;
  }
  50% {
    text-shadow: 0 0 20px #00ff00;
  }
  100% {
    text-shadow: 0 0 5px #00ff00;
  }
}

@keyframes warning-flash {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@keyframes countdown-pulse {
  0% {
    transform: scale(1.5);
    opacity: 0;
  }
  50% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.8);
    opacity: 0;
  }
}

@keyframes danger-flash {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}

@keyframes safe-glow {
  0% {
    text-shadow: 0 0 5px #00ffff;
  }
  50% {
    text-shadow: 0 0 20px #00ffff;
  }
  100% {
    text-shadow: 0 0 5px #00ffff;
  }
}

@keyframes gridMove {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(50px);
  }
}

@keyframes scanLine {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(100vh);
  }
}

@keyframes borderGlow {
  0%, 100% {
    opacity: 0.3;
  }
  50% {
    opacity: 1;
  }
}

@keyframes progressGlow {
  0%, 100% {
    transform: translateX(-100%);
  }
  50% {
    transform: translateX(100%);
  }
}

@keyframes blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}

@keyframes pulse {
  0%, 100% {
    opacity: 0.5;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.2);
  }
}

@keyframes scanline {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(100%);
  }
}

@keyframes scanlines {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(4px);
  }
}

@keyframes neonPulse {
  0%, 100% {
    text-shadow: 0 0 10px $primary-color,
    0 0 20px $primary-color,
    0 0 30px $primary-color;
  }
  50% {
    text-shadow: 0 0 20px $primary-color,
    0 0 30px $primary-color,
    0 0 40px $primary-color,
    0 0 50px $primary-color;
  }
}

@keyframes glitch {
  0% {
    clip: rect(44px, 9999px, 56px, 0);
  }
  5% {
    clip: rect(12px, 9999px, 23px, 0);
  }
  10% {
    clip: rect(64px, 9999px, 70px, 0);
  }
  15% {
    clip: rect(32px, 9999px, 39px, 0);
  }
  20% {
    clip: rect(27px, 9999px, 36px, 0);
  }
  25% {
    clip: rect(54px, 9999px, 63px, 0);
  }
  30% {
    clip: rect(19px, 9999px, 28px, 0);
  }
  35% {
    clip: rect(42px, 9999px, 51px, 0);
  }
  40% {
    clip: rect(35px, 9999px, 44px, 0);
  }
  45% {
    clip: rect(63px, 9999px, 72px, 0);
  }
  50% {
    clip: rect(15px, 9999px, 24px, 0);
  }
  55% {
    clip: rect(47px, 9999px, 56px, 0);
  }
  60% {
    clip: rect(29px, 9999px, 38px, 0);
  }
  65% {
    clip: rect(52px, 9999px, 61px, 0);
  }
  70% {
    clip: rect(21px, 9999px, 30px, 0);
  }
  75% {
    clip: rect(46px, 9999px, 55px, 0);
  }
  80% {
    clip: rect(33px, 9999px, 42px, 0);
  }
  85% {
    clip: rect(59px, 9999px, 68px, 0);
  }
  90% {
    clip: rect(24px, 9999px, 33px, 0);
  }
  95% {
    clip: rect(49px, 9999px, 58px, 0);
  }
  100% {
    clip: rect(37px, 9999px, 46px, 0);
  }
}

@keyframes glitch1 {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

@keyframes glitch2 {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes glitch3 {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(50%);
  }
}

@keyframes textGlitch {
  0%, 100% {
    transform: none;
  }
  92% {
    transform: skew(2deg);
  }
  94% {
    transform: skew(-2deg);
  }
  96% {
    transform: skew(1deg);
  }
  98% {
    transform: skew(-1deg);
  }
}

@keyframes glitchText {
  0% {
    clip: rect(44px, 9999px, 56px, 0);
  }
  5% {
    clip: rect(12px, 9999px, 23px, 0);
  }
  10% {
    clip: rect(64px, 9999px, 70px, 0);
  }
  15% {
    clip: rect(32px, 9999px, 39px, 0);
  }
  20% {
    clip: rect(27px, 9999px, 36px, 0);
  }
  25% {
    clip: rect(54px, 9999px, 63px, 0);
  }
  30% {
    clip: rect(19px, 9999px, 28px, 0);
  }
  35% {
    clip: rect(42px, 9999px, 51px, 0);
  }
  40% {
    clip: rect(35px, 9999px, 44px, 0);
  }
  45% {
    clip: rect(63px, 9999px, 72px, 0);
  }
  50% {
    clip: rect(15px, 9999px, 24px, 0);
  }
  55% {
    clip: rect(47px, 9999px, 56px, 0);
  }
  60% {
    clip: rect(29px, 9999px, 38px, 0);
  }
  65% {
    clip: rect(52px, 9999px, 61px, 0);
  }
  70% {
    clip: rect(21px, 9999px, 30px, 0);
  }
  75% {
    clip: rect(46px, 9999px, 55px, 0);
  }
  80% {
    clip: rect(33px, 9999px, 42px, 0);
  }
  85% {
    clip: rect(59px, 9999px, 68px, 0);
  }
  90% {
    clip: rect(24px, 9999px, 33px, 0);
  }
  95% {
    clip: rect(49px, 9999px, 58px, 0);
  }
  100% {
    clip: rect(37px, 9999px, 46px, 0);
  }
}

.menu-btn {
  &:hover {
    .btn-text {
      animation: buttonGlitch 0.3s cubic-bezier(.25, .46, .45, .94) both;
    }
  }
}

@keyframes buttonGlitch {
  0% {
    transform: translate(0);
  }
  20% {
    transform: translate(-2px, 2px);
  }
  40% {
    transform: translate(-2px, -2px);
  }
  60% {
    transform: translate(2px, 2px);
  }
  80% {
    transform: translate(2px, -2px);
  }
  100% {
    transform: translate(0);
  }
}

.language-switch {
  display: none;
}

@keyframes gridRotate {
  0% {
    transform: perspective(500px) rotateX(20deg);
  }
  100% {
    transform: perspective(500px) rotateX(20deg) translateY(100%);
  }
}

@keyframes neonPulse {
  0%, 100% {
    text-shadow: 0 0 10px $primary-color,
    0 0 20px $primary-color,
    0 0 30px $primary-color;
  }
  50% {
    text-shadow: 0 0 20px $primary-color,
    0 0 30px $primary-color,
    0 0 40px $primary-color,
    0 0 50px $primary-color;
  }
}

@keyframes borderGlow {
  0%, 100% {
    box-shadow: 0 0 5px $primary-color,
    inset 0 0 5px $primary-color;
  }
  50% {
    box-shadow: 0 0 20px $primary-color,
    inset 0 0 10px $primary-color;
  }
}

@keyframes scanlines {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(4px);
  }
}

@keyframes glitch {
  0% {
    clip: rect(44px, 9999px, 56px, 0);
  }
  5% {
    clip: rect(12px, 9999px, 23px, 0);
  }
  10% {
    clip: rect(64px, 9999px, 70px, 0);
  }
  15% {
    clip: rect(32px, 9999px, 39px, 0);
  }
  20% {
    clip: rect(27px, 9999px, 36px, 0);
  }
  25% {
    clip: rect(54px, 9999px, 63px, 0);
  }
  30% {
    clip: rect(19px, 9999px, 28px, 0);
  }
  35% {
    clip: rect(42px, 9999px, 51px, 0);
  }
  40% {
    clip: rect(35px, 9999px, 44px, 0);
  }
  45% {
    clip: rect(63px, 9999px, 72px, 0);
  }
  50% {
    clip: rect(15px, 9999px, 24px, 0);
  }
}

@keyframes glitch-1 {
  0% {
    clip-path: inset(20% 0 30% 0);
  }
  20% {
    clip-path: inset(60% 0 10% 0);
  }
  40% {
    clip-path: inset(40% 0 50% 0);
  }
  60% {
    clip-path: inset(80% 0 5% 0);
  }
  80% {
    clip-path: inset(10% 0 70% 0);
  }
  100% {
    clip-path: inset(30% 0 20% 0);
  }
}

@keyframes glitch-2 {
  0% {
    clip-path: inset(10% 0 60% 0);
  }
  20% {
    clip-path: inset(30% 0 20% 0);
  }
  40% {
    clip-path: inset(70% 0 10% 0);
  }
  60% {
    clip-path: inset(20% 0 50% 0);
  }
  80% {
    clip-path: inset(50% 0 30% 0);
  }
  100% {
    clip-path: inset(40% 0 40% 0);
  }
}

@keyframes radar-sweep {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
